Caching a user's data within the context of a cloud-computing network typically involves storing the data in memory locations that are distributed across nodes within a data center (e.g., cluster of servers in the cloud-computing network) using a caching service. The caching service allows users (e.g., clients of a cloud service) to perform various data-management operations (e.g., save, fetch, retrieve, and delete) using network keys, which are partitioned across the nodes in the data center. Because the user's data may be present in any of the data-center nodes—based on a partitioning scheme, available space, and any other storage considerations—a mapping between the network keys and the nodes holding data is maintained within a routing table.
Within the cloud-computing network, the routing table allows the caching service to find and connect to at least one node holding data that is being requested. In conventional systems, clients of the caching service are not provided with the routing table. Generally, clients are not provided the routing table because, in conventional systems, a load balancer that receives requests from the clients is not equipped to handle a request that is targeted to a specific instance within the cloud-computing network. Even if the clients attempt to create a routing table locally, the number of routing connections between the data-center nodes tends to continuously increase or change to support requests from other clients. Further, the routing connections may become unusable due to internal topology changes within the cloud-computing network. Thus, the client-created routing tables are quickly rendered out-of-date.
Further, as the number of routing connections increases, it is not possible to create and maintain all routing connections within the cloud-computing network, due to various infrastructure limitations. In this regard, the embodiments of the present invention, as discussed more fully below, introduce a process for intelligently creating the routing connections between the client and the data center based on, in part, a usage pattern, as well as a process for maintaining and updating a routing table at the client.